package com.akjava.lib.android.ui;

import java.io.BufferedInputStream;
import java.io.InputStream;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;


/**
 * 
 * Simple create widget by hand
 * 
 * (c)2009 aki akjava.com
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
 *
 */
public class WidgetUtil {

	public static LinearLayout createLinearLayout(Context context,boolean horizontal){
		LinearLayout linear=new LinearLayout(context);
		if(!horizontal){
		linear.setOrientation(LinearLayout.VERTICAL);
		}
		return linear;
	}
	

	
	public static Button createButton(Context context,String label){
		Button bt=new Button(context);
		bt.setText(label);
		return bt;
	}
	
	public static EditText createEditText(Context context){
		return createEditText(context,"");
	}
	public static EditText createEditText(Context context,String text){
		EditText bt=new EditText(context);
		
		
		bt.setText(text);
		
		return bt;
	}
	
	
	
	public static ImageButton createImageButton(Context context,Bitmap bitmap){
		ImageButton bt=new ImageButton(context);
		
		bt.setImageBitmap(bitmap);
		return bt;
	}
	/**
	 * 
	 * for creating ImageButton 
	 * ImageButton imageBt=WidgetUtil.createImageButton(this, WidgetUtil.loadBitmap(getClass(), "icon_level_up.png"));
          
	 * 
	 * 
	 * @param clazz 
	 * @param resouceName 
	 * @return
	 */
	public static Bitmap loadBitmap(Class clazz,String resouceName){
		 InputStream input=clazz.getResourceAsStream(resouceName);
         Bitmap bitmap=BitmapFactory.decodeStream(new BufferedInputStream(input,1024*8));
         return bitmap;
	}
	
	//For List Activity
	public static ListView createListActivityList(Context context){
		return createList(context, android.R.id.list);
	}
	
	public static ListView createList(Context context,int id){
		ListView list=new ListView(context);
		list.setId(id);
		return list;
	}
	
	
	public static LinearLayout.LayoutParams createLayoutParam(boolean fillWidth,boolean fillHeight){
		int w= LinearLayout.LayoutParams.WRAP_CONTENT;
		int h= LinearLayout.LayoutParams.WRAP_CONTENT;
		if(fillWidth){
			w= LinearLayout.LayoutParams.FILL_PARENT;
		}
		if(fillHeight){
			h=LinearLayout.LayoutParams.FILL_PARENT;
		}
		return new LinearLayout.LayoutParams(w, h);
	}
	
	public static LinearLayout.LayoutParams createLayoutParam(int w,int h){
		return new LinearLayout.LayoutParams(w, h);
	}
	
	public static LinearLayout.LayoutParams createLayoutParam(int w,int h,int weight){
		return new LinearLayout.LayoutParams(w, h,weight);
	}
	
	/**
	 * 
	 * make layout
	 * root.addView(WidgetUtil.createListActivityList(this),WidgetUtil.createLayoutParam(true,false,1));
	 * 
	 * @param fillWidth　
	 * @param fillHeight 
	 * @param weight 
	 * @return
	 */
	public static LinearLayout.LayoutParams createLayoutParam(boolean fillWidth,boolean fillHeight,int weight){
		int w= LinearLayout.LayoutParams.WRAP_CONTENT;
		int h= LinearLayout.LayoutParams.WRAP_CONTENT;
		if(fillWidth){
			w= LinearLayout.LayoutParams.FILL_PARENT;
		}
		if(fillHeight){
			h=LinearLayout.LayoutParams.FILL_PARENT;
		}
		return new LinearLayout.LayoutParams(w, h,weight);
	}



	public static RadioGroup createRadioGroup(Context context){
		return new RadioGroup(context);
	}
	public static RadioButton createRadioButton(Context context,String label,int id){
		RadioButton bt= new RadioButton(context);
		bt.setId(id);
		bt.setText(label);
		return bt;
	}
	
	public static TextView createText(Context context, String text) {
		TextView bt=new TextView(context);
		
		
		bt.setText(text);
		
		return bt;
	}
	
	public static TextView createText(Context context, int resid) {
		TextView bt=new TextView(context);
		
		
		bt.setText(resid);
		
		return bt;
	}



	public static ImageView createImageView(Context context,
			int resid) {
	ImageView view=new ImageView(context);
		
	view.setImageBitmap(BitmapFactory.decodeResource(context.getResources(), resid));
		return view;
	}
}
